#ifndef TRI_UI_UISTYLE_H_
#define TRI_UI_UISTYLE_H_

#include "../base/utils.h"
#include "../base/system.h"
#include "style.h"

namespace tri{
namespace ui{


class extUIStyle{
public:
	extUIStyle();
	virtual ~extUIStyle();
	
	//virtual public methods
	virtual void loadComponentStyle(tri::ui::extStyle* style);
	virtual void loadPanelStyle(tri::ui::extStyle* style);
	virtual void loadFontStyle(tri::ui::extStyle* style);
	virtual void loadLabelStyle(tri::ui::extStyle* style);
	virtual void loadButtonStyle(tri::ui::extStyle* style);
	virtual void loadTextEditStyle(tri::ui::extStyle* style);
	virtual void loadNumberEditStyle(tri::ui::extStyle* style);
	virtual void loadCheckBoxStyle(tri::ui::extStyle* style);
	virtual void loadHSliderStyle(tri::ui::extStyle* style);
	virtual void loadHSliderButtonStyle(tri::ui::extStyle* style);
	virtual void loadVSliderStyle(tri::ui::extStyle* style);
	virtual void loadVSliderButtonStyle(tri::ui::extStyle* style);
	virtual void loadScrollPanelStyle(tri::ui::extStyle* style);
	virtual void loadScrollPanelVerticalSliderStyle(tri::ui::extStyle* style);
	virtual void loadScrollPanelVerticalSliderThumbButtonStyle(tri::ui::extStyle* style);
	virtual void loadScrollPanelHorizontalSliderStyle(tri::ui::extStyle* style);
	virtual void loadScrollPanelHorizontalSliderThumbButtonStyle(tri::ui::extStyle* style);
	virtual void loadTabBackPanelStyle(tri::ui::extStyle* style);
	virtual void loadTabButtonStyle(tri::ui::extStyle* style);
	virtual void loadListItemStyle(tri::ui::extStyle* style);
	virtual void loadSpinBoxNumberEditStyle(tri::ui::extStyle* style);
	virtual void loadSpinBoxUpButtonStyle(tri::ui::extStyle* style);
	virtual void loadSpinBoxDownButtonStyle(tri::ui::extStyle* style);
};

void loadWin7StyleAsDefault();
void applyUIStyle(extUIStyle* uiStyle);


}
}

#endif /*STYLES_H_*/
